<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="chrome=1">
    <title>Strange by ThirdMotion</title>

    <link rel="stylesheet" href="stylesheets/styles.css">
    <link rel="stylesheet" href="stylesheets/pygment_trac.css">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
  </head>
  <body>
    <div class="wrapper">
    
      <header>
      <h1><a href="./index.html">StrangeIoC</a></h1>
        <p></p>

        <p class="view"><a href="https://github.com/thirdmotion/strangeioc">View the Project on GitHub <small>thirdmotion/strangeioc</small></a></p>
        <ul>
          <li><a href="https://github.com/thirdmotion/strangeioc/zipball/master">Download <strong>ZIP File</strong></a></li>
          <li><a href="http://u3d.as/content/third-motion-inc-/strange-io-c/4Xj">Get from <strong>Unity Store</strong></a></li>
          <li><a href="https://github.com/thirdmotion/strangeioc">View on <strong>GitHub</strong></a></li>
        </ul>
        <p class="view"><a href="./exec.html">Overview</a> (why you want to get Strange)</p>
        <p class="view"><a href="./html/index.html">Docs</a> (Doxygen-generated)</p>
        <p class="view"><a href="./TheBigStrangeHowTo.html">The Big, Strange How-To</a> (developer manual)</p>
        <p class="view"><a href="./faq.html">FAQ</a></p>
        <p class="view">Use Robotlegs? <a href="./rl.html">This is for you</a>!</p>
        <p class="view"><a href="http://github.com/thirdmotion/strangeioc/wiki">Strange Wiki</a></p>
        <p><br/>Follow StrangeIoC on</p>
<p class="view"><a href="http://www.facebook.com/strangeioc">Facebook</a></p>
        <p class="view"><a href="https://twitter.com/StrangeIoC">Twitter</a></p>
        <p class="view"><a href="https://groups.google.com/forum/#!forum/strangeioc">Google Groups</a></p>
      </header>
      
      <section>
        
        <img src="img/logo.png" alt="StrangeIoC" />
        <h2>Hey Unity! It's time to get Strange...</h2>

<p>StrangeIoC is a super-lightweight and highly extensible Inversion-of-Control framework, written specifically for C# and Unity.</p>
<div class="features">
    <div id="featureRight">
      <p>KEY BENEFITS</p>
      <ul>
      	<li>Decoupled, modular code.</li>
      	<li>Rapid development.</li>
      	<li>Good for individuals, great for teams!</li>
      	<li>Works great with Unity &amp; MonoDevelop. Also works great without them.</li>
    	</ul>
    </div>
	<div id="featureLeft">
	  <p>KEY FEATURES</p>
	  <ul>
      <li>Dependency Injection</li>
      <li>Shared pub/sub system</li>
      <li>View mediation</li>
      <li>Battle-tested architecture</li>
      <li>Core binding framework</li>
      <li>Multiple, modular contexts</li>
    </ul>
    </div>
</div>
<h2>&nbsp;</h2>
<h2>Early praise for StrangeIoC</h2>
<blockquote>
   <p>&ldquo;I really like it! I recognize a well-thought-out API when I see it.&rdquo;<br>
     - Till Schneidereit, Author of <a href="https://github.com/tschneidereit/SwiftSuspenders">Swiftsuspenders</a>, member of the <a href="https://github.com/mozilla/shumway">Shumway</a> team</p></blockquote>
     
<blockquote>
   <p>@StrangeIoC I dig the &quot;bind everything&quot; concept.<br>
     - Shaun Smith, Author of <a href="http://www.robotlegs.org/">Robotlegs</a> </p>
</blockquote>
<h2>Details</h2>
<h3>Dependency Injection</h3>

<p>Decouple all your class dependencies and write cleaner, modular code with a highly optimized Reflection/Injection system.</p>

<h3>
  Two Pub/sub systems</h3>

<p>Each context features an EventDispatcher reachable by any point in code. Additionally, a <a href="http://qt-project.org/doc/qt-5.0/qtcore/signalsandslots.html">Signals-and-Slots</a> style Signals dispatcher permits type-safe communication. Apply the method that suits you best!</p>

<h3>
  View mediation</h3>

<p>Insulate your app from the chaos often present in views. Mediation allows clean separation of Views from Controllers and Models with no loss of capability.</p>

<h3>
  Battle-tested architecture</h3>

<p>Strange's architecture is based on the  popular Robotlegs micro-framework. This architecture is well founded,  highly proven, and lightly urges responsible development that works great for individuals or teams.</p>
<h3>Core binding framework</h3>
<p>The core of Strange is a simple, highly extensible Binder class. Extend the Binder to create decoupling models that suit your situation. Every component in Strange is an extension of Binder, so there are already many examples to follow.</p>
<h3>Multiple, modular contexts</h3>
<p>Modular contexts allow you to spin off portions of your project to different teams, then agree on an API and  plug-and-play. This simplifies development and decouples whole components of the app for later re-use.</p>
<h2>Documentation</h2>
<p>We've written lots of documentation to help you get started. It's all in the sidebar at the left.</p>
<p>There's also this handy chart, which explains Strange's MVCS architecture in a single picture:</p>
<p><a href="class-flow.png"><img src="class-flow.png" alt="MVCSContext Architecture" /></a></p>
      </section>
      <footer>
        <p><small>StrangeIoC is a project by <a href="http://thirdmotion.com">ThirdMotion, Inc</a>.</small></p>
        <p><small>&copy; 2013. Third Motion, Inc.</small></p>
        <p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
      </footer>
    </div>
    <script src="javascripts/scale.fix.js"></script>
    
  </body>
</html>